Exemplary embodiments relate to resource management, and more specifically, forecasting-based service assignments in cloud computing environments.
Utility/cloud computing delivers compute and storage resources to applications as an ‘on-demand utility’, similar to an electricity grid. The utility computing model is enabled by distributed collection of compute and storage resources spread over a local or a wide area network, i.e., networked utilities. Examples include scientific workflows running on computational grids and multi-tier web services (e.g., an ecommerce website) operating in data centers. The utility setting offers several benefits for applications: reduced infrastructure and management costs, higher resource utilization, and the ability to allocate resources on-demand to support dynamically changing demands, which results in reduced capital expenditure costs.
Virtual machine (VM) technology offers powerful mechanisms for efficient management of networked utilities. After a decade of advances in VMs, robust and efficient VM systems are widely available and are fast becoming ubiquitous. The leading VM systems support live migration, checkpoint/restart, and fine-grained allocation of server resources as a measured and metered quantity. These capabilities create a rich decision space for utility resource management such as how an intelligent infrastructure should “turn the knobs” to map workload and resource requests onto a server network.
Intelligent provisioning of VMs is necessary to meet system performance goals such as meeting application Service Level Agreements (SLAs), optimizing application execution time, and maximizing overall resource usage. However, provisioning VMs to meet such goals may be considered involved because application behavior is dictated by the interaction of several factors such as: Resources: The number of VMs assigned to the application, and the properties of the underlying resources bound to each VM, e.g., CPU, memory, storage, and network resources. Data: The characteristics of the data that the application processes such as the input data size, and its layout and partitioning on the storage server. Workload: The characteristics of the workload seen by the application, e.g., the request arrival rate, and the service demand of each request.